Defines a three-dimensional Bernoulli-Euler beam element.
The local x-axis runs from node 1 to node 2. The orientation point defines the local z-axis; the local y-axis completes the right-handed element coordinate system.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| real(kind=real64), | public | :: | Ixx |
The beam moment of inertia about the element x-axis. |
|||
| real(kind=real64), | public | :: | Iyy |
The beam moment of inertia about the element y-axis. |
|||
| real(kind=real64), | public | :: | Iyz |
The cross-sectional product of inertia. |
|||
| real(kind=real64), | public | :: | Izz |
The beam moment of inertia about the element z-axis. |
|||
| real(kind=real64), | public | :: | area |
The element cross-sectional area. |
|||
| type(material), | public | :: | material |
The material. |
|||
| type(node), | public | :: | node_1 |
The first node of the element (s = -1). |
|||
| type(node), | public | :: | node_2 |
The second node of the element (s = 1). |
|||
| type(point), | public | :: | orientation_point |
A point used to determine the orientation of the beam in 3D space. The orientation point is measured relative to the first node in the element. Specifically, the element z axis is assumed to be defined by the location of this point relative to the location of node 1. |
Constructs a new [[beam_element_3d]] object.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(material), | intent(in) | :: | mat |
The material. |
||
| real(kind=real64), | intent(in) | :: | area |
The cross-sectional area. |
||
| real(kind=real64), | intent(in) | :: | ixx |
The moment of inertia about the element's x-axis (torsional). |
||
| real(kind=real64), | intent(in) | :: | iyy |
The moment of inertia about the element's y-axis. |
||
| real(kind=real64), | intent(in) | :: | izz |
The moment of inertia about the element's z-axis. |
||
| real(kind=real64), | intent(in) | :: | iyz |
The cross-sectional product of inertia. |
||
| class(node), | intent(in) | :: | nd1 |
The first node. |
||
| class(node), | intent(in) | :: | nd2 |
The second node. |
||
| class(point), | intent(in) | :: | orient |
An orientation node that locates the direction of the element z-axis. The orientation point is measured relative to the first node in the element. Specifically, the element z-axis is assumed to be defined by the location of this point relative to the location of node 1. |
The new [[beam_element_3d]] object.
Computes the local moment vector at the specified natural coordinate. The result is ordered as [torsional, y-axis, z-axis] moments.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(beam_element_3d), | intent(in) | :: | this |
The beam element. |
||
| real(kind=real64), | intent(in), | dimension(:) | :: | displacement |
The element displacement vector in the global coordinate system. |
|
| real(kind=real64), | intent(in), | dimension(:) | :: | s |
The natural coordinate at which to evaluate the moments. |
The local moment vector.
Computes the constitutive matrix for the element.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(beam_element_3d), | intent(in) | :: | this |
The beam_element_3d object. |
The resulting matrix.
Evaluates the i-th shape function at natural coordinate s.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(beam_element_3d), | intent(in) | :: | this |
The beam_element_3d object. |
||
| integer(kind=int32), | intent(in) | :: | i |
The index of the shape function to evaluate. |
||
| real(kind=real64), | intent(in), | dimension(:) | :: | s |
The value of the natural coordinate at which to evaluate the shape function. |
The value of the i-th shape function at s.
Computes the external force vector for the element.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(line_element), | intent(in) | :: | this |
The line_element object. |
||
| real(kind=real64), | intent(in), | dimension(:) | :: | q |
The surface traction or body-force vector. |
|
| integer(kind=int32), | intent(in), | optional | :: | rule |
The optional numerical integration rule. |
The resulting vector.
Gets the dimensionality of the element.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(beam_element_3d), | intent(in) | :: | this |
The beam_element_3d object. |
The dimensionality.
Gets the number of degrees of freedom per node.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(beam_element_3d), | intent(in) | :: | this |
The beam_element_3d object. |
The number of DOF per node.
Gets the requested node from the element.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(beam_element_3d), | intent(in) | :: | this |
The beam_element_3d object. |
||
| integer(kind=int32), | intent(in) | :: | i |
The local index of the node to retrieve. |
The requested node.
Gets the number of nodes for the element.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(beam_element_3d), | intent(in) | :: | this |
The beam_element_3d object. |
The number of nodes.
Returns the natural coordinate of a terminal node.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(line_element), | intent(in) | :: | this |
The line_element object. |
||
| integer(kind=int32), | intent(in) | :: | i |
The local node index. |
The natural coordinate of the node.
Gets the terminal node numbers for the element.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(beam_element_3d), | intent(in) | :: | this |
The beam_element_3d object. |
||
| integer(kind=int32), | intent(out) | :: | i1 |
The index of the node at the head of the element. |
||
| integer(kind=int32), | intent(out) | :: | i2 |
The index of the node at the tail of the element. |
Computes the Jacobian matrix for a 3D beam element.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(beam_element_3d), | intent(in) | :: | this |
The beam_element_3d object. |
||
| real(kind=real64), | intent(in), | dimension(:) | :: | s |
The value of the natural coordinate at which to evaluate the matrix. |
The Jacobian matrix.
Computes the length of the line_element.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(line_element), | intent(in) | :: | this |
The line_element object. |
The length of the line element.
Computes the consistent mass matrix for the element. Translational and bending terms scale with , and the torsional terms scale with .
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(beam_element_3d), | intent(in) | :: | this |
The beam_element_3d object. |
||
| integer(kind=int32), | intent(in), | optional | :: | rule |
The integration rule. This argument is unused and is present for interface compatibility; the mass matrix is computed in closed form. |
The resulting matrix.
Computes the rotation matrix for the element.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(beam_element_3d), | intent(in) | :: | this |
The beam_element_3d object. |
The resulting 12-by-12 rotation matrix.
Computes the shape function matrix for a beam element.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(beam_element_3d), | intent(in) | :: | this |
The beam_element_3d object. |
||
| real(kind=real64), | intent(in), | dimension(:) | :: | s |
The value of the natural coordinate at which to evaluate the shape functions. |
The shape function matrix.
Computes the local shear force vector at the specified natural coordinate. The result is ordered as [y-axis, z-axis] forces.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(beam_element_3d), | intent(in) | :: | this |
The beam element. |
||
| real(kind=real64), | intent(in), | dimension(:) | :: | displacement |
The element displacement vector in the global coordinate system. |
|
| real(kind=real64), | intent(in), | dimension(:) | :: | s |
The natural coordinate at which to evaluate the shear forces. |
The local shear force vector.
Computes the stiffness matrix for the element.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(beam_element_3d), | intent(in) | :: | this |
The beam_element_3d object. |
||
| integer(kind=int32), | intent(in), | optional | :: | rule |
The integration rule. The rule must be one of the following:
The default integration rule is MECH_TWO_POINT_INTEGRATION_RULE. |
The resulting matrix.
Computes the line-element strain from global element displacements at the specified natural coordinate.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(line_element), | intent(in) | :: | this |
The line_element object. |
||
| real(kind=real64), | intent(in), | dimension(:) | :: | displacement |
The element displacement vector in the global coordinate system. |
|
| real(kind=real64), | intent(in), | dimension(:) | :: | s |
The natural coordinates at which to evaluate the strain. |
The resulting strain vector in the element coordinate system.
Computes the strain-displacement matrix for a 3D beam element.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(beam_element_3d), | intent(in) | :: | this |
The beam_element_3d object. |
||
| real(kind=real64), | intent(in), | dimension(:) | :: | s |
The value of the natural coordinate at which to evaluate the matrix. |
The strain-displacement matrix.
Computes the line-element stress result from global element displacements at the specified natural coordinate.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(line_element), | intent(in) | :: | this |
The line_element object. |
||
| real(kind=real64), | intent(in), | dimension(:) | :: | displacement |
The element displacement vector in the global coordinate system. |
|
| real(kind=real64), | intent(in), | dimension(:) | :: | s |
The natural coordinates at which to evaluate the stress. |
The resulting stress vector in the element coordinate system.